home *** CD-ROM | disk | FTP | other *** search
- /*
- * pidinfo.c:
- *
- * very simple /proc User+Sys Measurer utility program example.
- *
- * ascii text source code format from page # 65 of
- * the "X Performance and You" showcase slides from toolbox/documents/X
- *
- * cc -o pidinfo pidinfo.c
- */
-
- #include <stdio.h>
- #include <errno.h>
- #include <fcntl.h>
- #include <sys/procfs.h>
-
- main(int argc, char **argv)
- {
- char buf[32];
- int fd, tries;
- prstatus_t status;
-
- sprintf(buf, "/proc/%d", atoi(argv[1]));
- if ((fd=open(buf, O_RDWR)) == -1) exit(1);
- for(;;) {
- tries = 0;
- while ((tries < 5) && (ioctl(fd, PIOCSTATUS, &status) == -1) &&
- (errno == EAGAIN))
- tries++;
- if (tries == 5) exit(2);
- printf(">> snap of sys and usr for %s\n", buf);
- printf(" usr = %5d.%03d\n",
- status.pr_utime.tv_sec, status.pr_utime.tv_nsec/1000000);
- printf(" sys = %5d.%03d\n",
- status.pr_stime.tv_sec, status.pr_stime.tv_nsec/1000000);
- sleep(1);
- }
- }
-